package com.businesscard.system.mapper;

import com.businesscard.system.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 用户Mapper接口
 */
@Mapper
public interface UserMapper {
    
    /**
     * 根据ID查询用户
     */
    User selectById(Integer id);
    
    /**
     * 根据用户名查询用户
     */
    User selectByUsername(String username);
    
    /**
     * 根据邮箱查询用户
     */
    User selectByEmail(String email);
    
    /**
     * 查询所有用户
     */
    List<User> selectAll();
    
    /**
     * 插入用户
     */
    int insert(User user);
    
    /**
     * 更新用户
     */
    int update(User user);
    
    /**
     * 删除用户
     */
    int deleteById(Integer id);
    
    /**
     * 更新用户登录信息
     */
    int updateLoginInfo(@Param("id") Integer id, @Param("loginAttempts") Integer loginAttempts);
    
    /**
     * 更新用户密码
     */
    int updatePassword(@Param("id") Integer id, @Param("password") String password);
    
    /**
     * 更新用户临时密码
     */
    int updateTempPassword(@Param("email") String email, @Param("tempPassword") String tempPassword, @Param("expireTime") String expireTime);
    
    /**
     * 锁定/解锁账户
     */
    int updateLockStatus(@Param("id") Integer id, @Param("locked") Boolean locked);
} 